Geo-location services

ABSTRACT

A method for geo-location services is described. In one embodiment, the method includes tracking incidents that occur within a predetermined geographic area in relation to a subscription service, upon receiving a request for a list of incidents in relation to the predetermined geographic area, generating a notification comprising the requested list of incidents, and sending the notification to one or more subscribers within the predetermined geographic area.

CROSS REFERENCES

The present application is a continuation of U.S. patent applicationSer. No. 14/316,565, titled: “GEO-LOCATION SERVICES”, filed on Jun. 26,2014, which claims priority to U.S. Provisional Patent Application No.61/847,426, titled: “SYSTEMS AND METHODS FOR GEO-LOCATION SERVICES”,filed on Jul. 17, 2013. The disclosures of each of which areincorporated by reference herein in their entireties.

BACKGROUND

Advancements in media delivery systems and media-related technologiescontinue to increase at a rapid pace. Increasing demand for media hasinfluenced the advances made to media-related technologies. Computersystems have increasingly become an integral part of the media-relatedtechnologies. Computer systems may be used to carry out severalmedia-related functions. The widespread access to media has beenaccelerated by the increased use of computer networks, including theInternet and cloud networking.

Many businesses use one or more computer networks to deliver mediabetween the various computers connected to the networks. Users ofcomputer technologies continue to demand increased access to media andan increase in the efficiency of these technologies. Improving theefficiency of computer technologies is desirable to those who use andrely on computers.

With the wide-spread use of computers and mobile devices has come anincreased presence of home automation and home security products.Advancements in mobile devices allow users to track a location of adevice and/or a person carrying the device. Such geo-locationinformation, however, is not always readily available. As a result,benefits may be realized by providing systems and methods forgeo-location services in relation to home automation systems.

SUMMARY

According to at least one embodiment, a method for geo-location servicesis described. In one embodiment, the method may include trackingincidents that occur within a predetermined geographic area in relationto a subscription service, upon receiving a request for a list ofincidents in relation to the predetermined geographic area, generating anotification comprising the requested list of incidents, and sending thenotification to one or more subscribers within the predeterminedgeographic area. In some cases, the incidents are tracked and analyzedvia a backend of a security monitoring service. The list of incidentsmay be sortable by at least one of incident location, incident type,type of premises where incident occurred, proximity of an incident to alocation, and recentness of an incident. Incident types may include atleast one of theft, burglary, vandalism, and property damage. In somecases, the notification includes at least one of day of the week anincident occurred, time of day an incident occurred, location of anincident, type of item stolen, type of item vandalized, and point ofentry of a burglary.

In some embodiments, the method may include collecting data of incidentstracked from one or more other geographic areas, wherein the one or moreother geographic areas are similar to the predetermined geographic areain one or more aspects and including in the notification statistics forthe tracked incidents of the predetermined geographic area and the oneor more other geographic areas.

In one embodiment, the method may include masking an identity of aperson or location associated with an incident. In some cases, themethod includes pausing a channel from a subscriber program content anddisplaying the notification on at least a portion of the paused channel.

A computing device configured for geo-location services is alsodescribed. The computing device may include a processor and memory inelectronic communication with the processor. The memory may storecomputer executable instructions that when executed by the processorcause the processor to perform the steps of tracking incidents thatoccur within a predetermined geographic area in relation to asubscription service, upon receiving a request for a list of incidentsin relation to the predetermined geographic area, generating anotification comprising the requested list of incidents, and sending thenotification to one or more subscribers within the predeterminedgeographic area.

A non-transitory computer-readable storage medium storing computerexecutable instructions is also described. When the instructions areexecuted by a processor, the execution of the instructions may cause theprocessor to perform the steps of tracking incidents that occur within apredetermined geographic area in relation to a subscription service,upon receiving a request for a list of incidents in relation to thepredetermined geographic area, generating a notification comprising therequested list of incidents, and sending the notification to one or moresubscribers within the predetermined geographic area.

Features from any of the above-mentioned embodiments may be used incombination with one another in accordance with the general principlesdescribed herein. These and other embodiments, features, and advantageswill be more fully understood upon reading the following detaileddescription in conjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate a number of exemplary embodimentsand are a part of the specification. Together with the followingdescription, these drawings demonstrate and explain various principlesof the instant disclosure.

FIG. 1 is a block diagram illustrating one embodiment of an environmentin which the present systems and methods may be implemented;

FIG. 2 is a block diagram illustrating one example of a home automationmodule;

FIG. 3 is a block diagram illustrating one example of a monitoringmodule from the home automation module;

FIG. 4 is a flow diagram illustrating one embodiment of a method forgenerating notification when a particular user passes through apredetermined boundary;

FIG. 5 is a flow diagram illustrating one embodiment of a method forperforming an action upon identifying a learned behavior of the user;

FIG. 6 is a flow diagram illustrating one embodiment of a method forgenerating a notification upon detecting a user falling;

FIG. 7 is a flow diagram illustrating one embodiment of a method forgenerating a notification upon determining a user is near apredetermined location;

FIG. 8 is a flow diagram illustrating one embodiment of a method formonitoring a status of a service provider;

FIG. 9 is a flow diagram illustrating one embodiment of a method formonitoring a location of a user relative to a calendar appointment;

FIG. 10 is a flow diagram illustrating one embodiment of a method fortracking incidents occurring within a geographic area;

FIG. 11 is a flow diagram illustrating one embodiment of a method forproviding a temporary code that unlocks a door to emergency responsepersonnel upon identifying an emergency situation; and

FIG. 12 depicts a block diagram of a computer system suitable forimplementing the present systems and methods.

While the embodiments described herein are susceptible to variousmodifications and alternative forms, specific embodiments have beenshown by way of example in the drawings and will be described in detailherein. However, the exemplary embodiments described herein are notintended to be limited to the particular forms disclosed. Rather, theinstant disclosure covers all modifications, equivalents, andalternatives falling within the scope of the appended claims.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The systems and methods described herein relate to home automation.

More specifically, the systems and methods described herein relate togeo-location services in relation to a home automation system. Someembodiments of the systems and methods described herein relate togeo-location services in relation to an integration of home automationand a subscriber-based media content set top box, such as a satelliteand/or cable digital video recorder (DVR).

In one example, a user may desire to receive an alert when another userleaves a certain area. For instance, the parent of a child may want toknow when the child is outside the home. Presently, the parent may placea tracking device on the child. The parent, however, may have toactively check a monitoring device to know whether the child haswandered outside of the home. The present systems and methods providethe means for tracking a certain user, detecting when the certain userpasses through a predetermined perimeter, and providing notificationmessages upon detecting the user passing through the predeterminedperimeter. Moreover, the systems and methods described herein mayprovide geo-location services and notifications in relation to a homeautomation system. Furthermore, the systems and methods described hereinmay provide geo-location services and notifications in relation to achannel of a subscriber-based media content set top box.

FIG. 1 is a block diagram illustrating one embodiment of an environment100 in which the present systems and methods may be implemented. In someembodiments, the systems and methods described herein may be performedon a device (e.g., device 105). The environment 100 may include a device105, service provider device 110, a sensor 125, a display 130, a mobilecomputing device 150, a home automation controller 155, and a network115 that allows the device 105, the service provider device 110, themobile computing device 150, home automation controller 155, and sensor125 to communicate with one another. Examples of the device 105 includemedia content set top box, satellite set top box, cable set top box,DVRs, personal video recorders (PVRs), mobile devices, smart phones,personal computing devices, computers, servers, etc. Examples of thehome automation controller 155 include a dedicated home automationcomputing device (e.g., wall-mounted controller), a personal computingdevice (e.g., laptop, desktop, etc.), a mobile computing device (e.g.,tablet computing device, smartphone, etc.), and the like. Examples ofsensor 125 include a camera sensor, audio sensor, three-dimensional(3-D) sensor, motion sensor, smoke sensor, glass break sensor, doorsensor, window sensor, carbon monoxide sensor, accelerometer a locationsensor (e.g., global positioning system (GPS) sensor, Wi-Fi positioningsystem sensor, etc.), capacitance sensor, radio frequency sensor,near-field sensor, temperature sensor, heartbeat sensor, breathingsensor, oxygen sensor, carbon dioxide sensor, brain wave sensor,movement sensor, voice sensor, and the like. Sensor 125 may representone or more of the sensors listed or a combination thereof. For example,sensor 125 may represent one or more camera sensors and one or moremotion sensors connected to the environment 100. Additionally, oralternatively, sensor 125 may represent a combination sensor such asboth a camera sensor and a motion sensor integrated in the same device.Sensor 125 may be integrated with a facial recognition system. Althoughsensor 125 is depicted as connecting to device 105 over network 115, insome embodiments, sensor 125 may connect directly to device 105.Additionally, or alternatively, sensor 125 may be integrated with a homeappliance or fixture such as a light bulb fixture.

In some configurations, the device 105 may include a user interface 135,application 140, and home automation module 145. Although the componentsof the device 105 are depicted as being internal to the device 105, itis understood that one or more of the components may be external to thedevice 105 and connect to device 105 through wired and/or wirelessconnections. In some embodiments, application 140 may be installed onmobile computing device 150 in order to allow a user to interface with afunction of device 105, home automation module 145, home automationcontroller 155, and/or service provider device 110.

In some embodiments, device 105 may communicate with service providerdevice 110 via network 115. Example of networks 115 include cloudnetworks, local area networks (LAN), wide area networks (WAN), virtualprivate networks (VPN), wireless networks (using 802.11, for example),cellular networks (using 3G and/or LTE, for example), etc. In someconfigurations, the network 115 may include the internet. It is notedthat in some embodiments, the device 105 may not include a homeautomation module 145. For example, the device 105 may include theapplication 140 that allows the device 105 to interface with the homeautomation controller 155 via the home automation module 145 located onanother device such as mobile computing device 150 and/or serviceprovider device 110. In some embodiments, device 105, home automationcontroller 155, and service provider device 110 may include a homeautomation module 145 where at least a portion of the functions of homeautomation module 145 are performed separately and/or concurrently ondevice 105, home automation controller 155, and/or service providerdevice 110. Likewise, in some embodiments, a user may access thefunctions of device 105 and/or home automation controller 155 (directlyor through device 105 via home automation module 145) from mobilecomputing device 150. For example, in some embodiments, mobile computingdevice 150 includes a mobile application that interfaces with one ormore functions of device 105, home automation controller 155, homeautomation module 145, and/or service provider device 110.

In some embodiments, service provider device 110 may be coupled todatabase 120. Database 120 may include program content 160, designatedareas 165, and learned behaviors 170. For example, device 105 may accessprogram content 160, designated areas 165, and/or learned behaviors 170in database 120 over network 115 via service provider device 110.Database 120 may be internal or external to the service provider device110. In one example, device 105 may be coupled directly to database 120,database 120 being internal or external to device 105.

Home automation module 145 may allow a user to control (either directlyor via home automation controller 155), from a subscription-contentmedia set top box, an aspect of the home of the user, includingsecurity, locking or unlocking a door, checking the status of a door,locating a person or item, controlling lighting, thermostat, cameras,and the like. In some configurations, application 140 may enable device105 to interface with home automation controller 155 via home automationmodule 145 to provide home automation content to device 105 and/ormobile computing device 150. Thus, application 140, via the homeautomation module 145, may allow users to control aspects of their home.Further details regarding the home automation module 145 are discussedbelow.

FIG. 2 is a block diagram illustrating one example of a home automationmodule 145-a. Home automation module 145-a may be one example of homeautomation module 145 depicted in FIG. 1. As depicted, home automationmodule 145-a may include monitoring module 205, comparison module 210,notification module 215, pattern detection module 220, a useridentification module 225, and a media module 230.

In some embodiments, service provider device 110 may provide subscriberprogram content (e.g., program content 160 such as cable/satellitetelevision programming, etc.) to a user via a set top box located in ahome, office, etc. of the user. Examples of set top boxes include cableset top boxes, satellite set top boxes, DVRs, PVRs, and the like.Monitoring module 205 may be configured to monitor a location of a user,object, etc. In some embodiments, monitoring module 205 may monitor astatus of an object, such as a security camera, a door lock, a doorstatus, a smoke alarm (or other type of sensor), a home appliance,utility equipment, energy/utility usage, and the like. Home appliancesmay include a refrigerator, oven, microwave oven, stove, dishwasher,washer, dryer, and the like. Utility equipment may include a garage dooropening system, heating ventilation air conditioning (HVAC) equipment,culinary water equipment (water heater, water softener, water meter,fire alarm, in-home sprinkler system, etc.), telephony equipment,irrigation water equipment (lawn sprinkler system, etc.), natural gassystem (carbon monoxide sensor, gas meter, gas detection system, etc.),and the like. Monitoring module 205 may be configured to detect apredetermined change related to an object or the triggering of apredetermined threshold related to the object (carbon monoxide levelsexceed a certain level, for example). In one embodiment, monitoringmodule 205 monitors a location of a user or object in relation to apredetermined condition. The predetermined condition may include a userand/or object entering or leaving a predetermined boundary, such as,entering and/or leaving a room of a home or any sort of building. Thepredetermined condition may further include detecting a user performingan action and/or a sequence of actions, detecting a routine that a userperforms, detecting a user falling, detecting a user approaching orbeing at a predetermined location, detecting when a user deviates from aroute the user routinely takes, tracking a location and/or status of aservice provider scheduled to arrive at a user's home or office,tracking a user's location in relation to a calendar appointment,tracking one or more conditions associated with a route a user may taketo an appointment, tracking certain incidents and related information(e.g., theft, burglary, type of items taken, day of the week incidentoccurred, time of day, etc.) within a geographic region in relation to asubscription service and providing the statistics of tracked incidentsto subscribers located within the geographic area. The predeterminedcondition may further include providing temporary codes to emergencyresponse personnel responding to an emergency situation (e.g., a userhas fallen and is unable to unlock a door).

In one embodiment, notification module 215 may generate a notificationin response to detecting one of the predetermined conditions listedabove. In some embodiments, notification module 215, in conjunction withthe user interface 135, may display a notification on a displayconnected to a set top box. Notification module 215 may display thenotification in relation to a presently viewed channel of the subscriberprogram content. In some cases, notification module 215 may display thenotification in at least a portion of a viewing area of the channel. Forexample, a user watching content from a satellite DVR on a televisionmay receive a notification displayed on at least a portion of the screenof the television. For example, a notification relating to a childleaving a house located in a certain community may be generated and sentto each user within the community that subscribes to set-top boxservice. The notification may be displayed on each television attachedto the set-top box in the community that subscribes to the service.

In some embodiments, notification module 215 may adapt a notificationbased on certain conditions. Notification module 215 may determinewhether to display a notification on a display based on notificationrules associated with a current state of device 105. For example,notification module 215 may determine whether to display thenotification based on the content provided by a set top box that a useris currently viewing. For instance, if a user is watching a sports(e.g., boxing match, World Series, Superbowl, etc.) notification module215 may block the display from being displayed or route the notificationto another device, such as an email or a text message sent to asmartphone or tablet device. In some cases, notification module 215 mayalter the notification based on the current state of the device 105. Forone type of programming and set top box content, notification module 215may show scrolling text across an edge of the television screen. Foranother type of programming, notification module 215 may play a sound(e.g., a tone, a combination of tones, a recorded voice notification, atext to speech notification, and the like) based on the type ofnotification. In some embodiments, notification module 215 may alter thedestination of the notification based on the type of notification and/orthe type of programming currently being viewed by the user. For example,if the notification rules require minimum notification for a certaintype of programming, the notification module 215 may display inalternative modes of communication. For instance, notification module215 may email or text message a notification to a user based on the typeof notification, the type of programming the user is currently watching,whether programming is currently being watched, and/or the currentlocation of the user, etc.

In some cases, notification module 215 may determine whether to displaya notification in relation to programming currently being watched by theuser and how to handle the programming based on the type of notificationand/or the type of programming. For example, home automation module145-a may pause the programming for one type of notification, show a popup message for another type of notification without pausing theprogramming, split the screen between a window for a security cameraview and a window for the programming for another type of notification,and so forth. Additionally, or alternatively, notification module 215may pause the programming for one type of notification based on one typeof programming, block the notification for the same type of notificationbased on another type of programming, and continue showing theprogramming for the same type of notification based on a third type ofprogramming.

In some embodiments, upon detecting a predetermined change related to alocation of a user or a status of an object, media module 230 may pausesubscriber program content currently provided on a channel. For example,the home automation module 145-a may pause and/or record a portion ofthe content the user was viewing when the notification is displayed. Insome cases, the notification may include a picture in picturenotification, a text bar, scrolling text, a pop up, or drop downnotification message. In some cases, the presently viewed channel may bepaused upon the notification module 215 displaying the notification.

In one embodiment, the monitoring module 205 may monitor a location of auser within a home or building, a user outside a home or office, or thelocation of a service provider. In some embodiments, pattern detectionmodule 220 may be configured to learn and subsequently identify apattern associated with the monitored action of the user. Comparisonmodule 210 may compare an initiated pattern of the user to a learnedpattern of the user. Upon determining a match, comparison module 210 maytrigger pattern detection module 220 to perform an operation.

The pattern detection module 220 may identify a pattern associated witha particular user in conjunction with user identification module 225. Insome embodiments, user identification module 225 may identify a user viasensor 125. For example, user identification module 225 may identify auser using facial recognition, identify a device associated with theuser, identify an identification code that is transmitted from a deviceassociated with the user, identify a movement signature of the user,identify a voice of the user, and the like.

In some embodiments, pattern detection module 220 may detect aninitiation of the identified pattern associated with the monitoredaction and location of the user. Upon detecting the initiation of theidentified pattern, home automation module 145-a may perform an actionor a sequence of actions. For example, pattern detection module 220 maydetect that a certain user dims the lights to a certain level, watches acertain program at certain times each week, and routinely turns off thedishwasher when it is running during the certain times. Upon recognizingan initiation of the learned pattern based on the user's location at acertain time of day, home automation module 145 may automatically turnon the television, tune a satellite and/or cable set top box to aparticular channel, dim the lights to a predetermined level, and pausethe dishwasher cycle, if home automation module 145-a detects thedishwasher is currently running. Upon detecting the end period of thesatellite content, home automation module 145-a may resume thedishwasher cycle, increase the brightness of the lights, etc.

In one embodiment, media module 230 may provide subscriber programcontent to a user via a set top box located in a home of the user.Monitoring module 205 may monitor an aspect of the home of the user.Media module 230, in conjunction with the user interface 135, mayprovide a monitor channel to display the monitored aspect of the home tothe user. The monitor channel may be displayed in a channel guide amongchannels of the subscriber program content. For example, a subscriptionto cable or satellite media content may include a channel guide thatincludes a list of selectable channels and their respective content.Among the list of channels provided by subscription, home automationmodule 145-a may append one or more home automation channels that areselectable and interact with user commands in a similar manner as thesubscription channels in the channel guide.

Media module 230 may provide a tracking channel, similar to the monitorchannel described above, to display a map of tracked users and/orobjects among channels of the subscriber program content. In someembodiments, home automation module 145-a may provide a home automationpreview channel. The home automation preview channel may provide areal-time preview of two or more home automation channels. In someembodiments, home automation module 145-a may split the screen to showthe current content provided by a media provider and a location of auser being tracked. Alternatively, home automation module 145-a maydisplay the location of the user being tracked in a picture in pictureelement over the current channel.

FIG. 3 is a block diagram illustrating one example of a monitoringmodule from the home automation module 205-a. Monitoring module 205-amay be one example of monitoring module 205 depicted in FIG. 2. Asdepicted, monitoring module 205-a may include location module 305,incident tracking module 310, public warning module 315, status module320, and route tracking module 325.

In one embodiment, location module 305 may track the location of anentity (e.g., family members, pets, and objects) in certain locationssuch as at home or at the office, and generally in any area. In onecase, when a tracked entity passes through or breaches a predeterminedboundary, a notification may be generated. A warning message may beprovided to a contact on a contact list. The contact list may includefamily members, neighbors, as well as law enforcement and emergencyresponse personnel. In one embodiment, notification module 215 maygenerate a community notification message and send an alert to contactson a community contact list. In some cases, the community contact listmay include users that have a similar system and subscribe to a similarservice within a certain community area. Contacts on the communitycontact list may also include email, text messaging, and telephonenumber contacts of people within the community area.

In one embodiment, location module 305 may track the location of a userand/or object. The system may monitor the behavior of a user in acertain location. In some cases, monitoring module 205-a, in conjunctionwith user identification module 225, may identify a motion signature ofa user detected through video sensors and/or sensors on the person(e.g., accelerometer), the motion signature including a certain motionor sequence of motions that uniquely identifies the user. Thus,monitoring module 205-a may identify the user based on the detectedmotion of the user. Additionally, or alternatively, monitoring module205-a may identify the user using a facial recognition algorithm. In oneembodiment, pattern detection module 220 may learn a behavior of theuser based on detecting the identity of the user and monitoring theactions of the user. Pattern detection module 220 may track when theactions are performed, where the actions are performed, and a pattern ofrelated actions the user performs, etc. Monitoring module 205-a maydetect the difference between a user “leaving” and “entering” a room,and respond accordingly. Home automation module 145 may anticipate theactions of the user by comparing a learned behavior/pattern of the userto a currently detected action or sequence of actions of the user. Forexample, monitoring module 205-a may monitor the location, identity, andcurrent actions of a user. Comparison module 210 may compare the currentactions of the identified user to a database of learned behaviors (e.g.,learned behaviors 170). Upon detecting a match, home automation module145 may perform an operation (e.g., execute a command, activate adevice) in response to a match between the detected action of the userand a learned behavior of the user. For example, the system may turn ona light, turn off a light, adjust a thermostat, turn on/off televisionprogramming or otherwise adjust the television programming (e.g., pause,rewind, fast forward, stop, record, play, switch to another channel,switch from one form of media to a different form of media, etc.).

In some embodiments, monitoring module 205-a may monitor a sensor on aperson (e.g., sensor 125). Monitoring module 205-a, via the sensor, maydetect when a user falls. Additionally, monitoring module 205-a maymonitor a sensor that tracks a current condition of the user, includingtemperature (body temperature), heartbeat, breathing, brain waves,movement, voice, sound, etc. Thus, monitoring module 205-a maydifferentiate between a person falling while wearing the sensor andfalse alarms such as where a person merely drops the sensor oractivities such as a user playing a sport or exercising. Notificationmodule 215 may generate a notification in response to the detection ofthe fall. In some cases, a notification may be sent through homeautomation controller 155. Upon being alerted, a receiver of thenotification may attempt to contact the user to verify that the user didfall, whether the user is able to get up, whether the person is alone atthe location, and whether the person is conscious. In some cases,notification module 215 may send a notification to emergency responsepersonnel. Additionally, or alternatively, notification module 215 maysend a notification to one or more persons on a contact list. In oneembodiment, location module 305 may determine the location of one ormore users on the contact list and contact a user that is currentlyclosest to the fallen person's location. In some cases, notificationmodule 215 may contact a person on the contact list based on the defaultlocation of persons on the contact list. In some embodiments, thenotification may include a summary of what happened (e.g., person hasfallen, is injured, etc.), a current status of the fallen person, thatemergency response personnel have been contacted and/or their currentstatus and estimated time of arrival (ETA), vital signs of the injuredperson, whether they are stable, conscious, etc. In some cases,monitoring module 205-a may provide this information to a monitoringservice and the monitoring service may contact a person on the contactlist and relay this information over the phone, email, SMS, etc. In oneembodiment, the fallen person's symptoms may be tracked by themonitoring module 205-a in conjunction with one or more sensors.Monitoring module 205-a may communicate the symptoms to emergencyresponse personnel currently in route to the fallen person's location,providing diagnostic information before the emergency response personnelarrive at the location, resulting in saved time for the emergencyresponse personnel, the saved time being used in treating the fallenperson instead of diagnosing injuries.

In some embodiments, a door lock may be linked to the system. The doorlock may include a keypad, wireless transceiver, and/or a camera. In oneexample, monitoring module 205-a may recognize a user using a camera andperforming a facial recognition algorithm. Upon recognizing the user,the home automation module 145 may unlock the door. Monitoring module205-a may detect a signal from a mobile computing system carried by auser (e.g., smartphone, etc.) and in response to receiving and verifyingan unlocking code in the received signal, home automation module 145 mayunlock the door. In some cases, monitoring module 205-a may receive aninput from the user (e.g., biometric scan, code entered in a keypad,etc.) and unlock the door in response to a verified input. In somecases, when emergency response personnel respond to emergencies at homesand locations where no one is available to unlock a door, the emergencyresponse personnel have little choice but to break in the door,resulting in potentially thousands of dollars of damage. To remedy thiscostly situation, notification module 215 may send a temporary code toemergency response personnel when responding to a detected emergency.For example, upon detecting a fall of a person that is home alone and isinjured or unable to get up, notification module 215 may provide atemporary code to the emergency response personnel to allow them to opena locked door. The code may be manually entered on a door lock thatincludes a keypad (e.g., front door or garage door with a keypad).Additionally, or alternatively, the code may be a digital code receivedwirelessly. The code may be encrypted and received in an applicationinstalled on a mobile device in the possession of emergency responsepersonnel. The code may then be relayed to the door lock wirelessly viathe mobile device (e.g., code wirelessly transmitted via a mobilecomputing device). The code may unlock a house door and/or a garagedoor. In some cases, the system may track the location of emergencyresponse personnel. In one embodiment, monitoring module 205-a maymonitor the location of emergency response personnel. Upon detecting theemergency response personnel arriving at the location of the fallenperson, the home automation module 145 may unlock the locked door and/oropen a garage door, etc.

In one embodiment, incident tracking module 310 may track communityincidents (theft, burglary, vandalism, etc.). Incident tracking module310 may track incidents in association with a subscription service.Incident tracking module 310 may track incidents within the communityand provide information related to the tracked incidents to subscribersof the subscription service that are located in the community in whichthe incidents occurred. Incident tracking module 310 may mask theidentity of persons and/or locations associated with the incidents.Thus, incident tracking module 310 may provide information such as typeof items stolen, point of entry, time of entry, day of the week incidentoccurred, etc. In some cases, media module 230 may provide incidentreports on a dedicated channel of a channel guide among channels ofsubscriber program content.

In one embodiment, when a user approaches or is located in an area thatis designated as a dangerous area (e.g., designated areas 165),notification module 215 may send an alert to the tracked user and/or oneor more other users. The designated area may be manually configured toinclude those areas known or suspected to be dangerous (e.g., abandonedbuilding, construction site, busy streets, etc.). Additionally, oralternatively, public warning module 315 may track locations oftemporary dangerous conditions (e.g., severe weather such as tornadosand earthquakes, escaped inmates, manhunts, etc.). In some cases,notification module 215 may switch a current channel being watched by afamily member at home to a dedicated map/tracking channel, indicatingthe tracked user's current location. In some cases, a notificationmessage may be displayed on the television screen. The system may sendan alert to the user traveling towards a detected or designateddangerous area. The system may also provide an alert to a family memberby switching a channel to a dedicated tracking channel and/or by sendingan email, text message, voicemail, etc. In some embodiments, patterndetection module 220 may learn travel routines (e.g., route taken toschool by child, route taken to work, to grocery store, etc.).Notification module 215 may generate a notification when it detects adeviation from a learned route. For example, when a child deviates froma route the child usually taken to school, notification module 215 maygenerate an alert and provide the alert to a parent, etc.

In some embodiments, a service provider may be tracked involving adelivery (e.g., USPS, UPS, FedEx, etc.), a media provider (e.g.,satellite, cable, telephone), service repair technician, nursing staff,ambulance, police, and the like. Additionally, or alternatively,monitoring module 205-a may track a garbage collector, snow removalvehicles, etc. The tracking feature may be enabled manually (e.g., byinvitation through text message, etc.) and/or enabled by company policy(e.g., tracking device located on company vehicle, tracking location ofemployee during business hours, etc.). Monitoring module 205-a mayimplement privacy controls that include non-specific locationinformation, temporary tracking, tracking expiration, scheduled trackingbased on business hours, and the like. For example, monitoring module205-a may track only a certain degree of granularity, such as the nameof a street or city where the service provider is currently located. Insome embodiments, status module 320 may track a current status of theservice provider (e.g., on the road, on a job, on break, at lunch, offwork, etc.) and remaining appointments of the service provider.Notification module 215 may filter the information received frommonitoring module 205-a and provide the filtered information to acustomer waiting for the service provider to arrive. For example,monitoring module 205-a may determine the location of the serviceprovider, that the status of the service provider is at lunch, and thatthe service provider has one appointment before the user's appointment.Home automation module 145 may calculate an estimated time of arrivalbased on the location, status, and remaining appointments. Notificationmodule 215 may provide the estimated time of arrival to the user and/orinformation related to the location, status, and remaining appointmentsof the service provider.

In one embodiment, location module 305 may track locations of attendeesof an appointment. In some cases, attendees may receive an invitation toaccept temporary/limited tracking in relation to the appointment. Insome cases, a company may enable a tracking policy to enable at least alimited form of tracking of employees during business hours. Monitoringmodule 205-a may send an attendee a message with a request to respondwith the attendee's current location in order to provide notification toother attendees whether the tracked attendee is likely to make theappointment on time and/or to provide an ETA for the tracked attendee tothe other attendees. For example, one attendee may be stuck in anairport in a different city. The system may determine that a flight fromthis user's current location will take longer than the time left beforethe meeting starts. Accordingly, the system may provide notification tothe other attendees that the tracked user will likely be unable toattend the meeting on time. In some cases, in order to protect privacy,the system may not provide the location of the tracked entity, butinstead, may simply provide information based on the tracked location.For example, monitoring module 205-a may receive the location of theuser, but instead of providing the location of the tracked user,monitoring module 205-a may simply provide notification that the trackeduser is 10 minutes away. In some cases, a device on the user mayestimate how far the user is and send this information (e.g., user is 10minutes away, user is 10 miles from location, etc.).

Based on the user's current location home automation module 145 maydetermine a suggested route (e.g., fastest or shortest route) to auser's appointment. In some cases, route tracking module 325 may trackconditions related to the suggested route. For example, route trackingmodule 325 may track conditions related to the suggested route (e.g.,weather conditions, flight delays, traffic accidents, road closures,etc.). In one example, the user may be watching television programming.Upon detecting a change in conditions related to the suggested route,notification module 215 may generate a notification. In one case,notification module 215 may display a message on the television screen,send a text message, send an email, etc. Home automation module 145 mayswitch to an appointments channel and provide estimated travel timebased on the detected changes to the suggested route. For example, ifroute tracking module 325 detects a traffic accident along the route toan appointment, notification module 215 may alert the user that theestimated travel time has increased and may provide an updated suggesteddeparture time and/or an updated route.

FIG. 4 is a flow diagram illustrating one embodiment of a method 400 forgenerating notification when a particular user passes through apredetermined boundary. In some configurations, the method 400 may beimplemented by the home automation module 145 illustrated in FIG. 1 or2. In some configurations, the method 400 may be implemented inconjunction with the application 140 and/or the user interface 135illustrated in FIG. 1.

At block 405, a location of a user may be monitored in relation to apredetermined boundary. At block 410, upon determining the user ispassing through the predetermined boundary, a notification may begenerated. At block 415, it may be determined which contact on a contactlist is nearest to a location near the predetermined boundary. At block420, a notification may be sent to the contact determined to be nearestto the location within the predetermined boundary.

FIG. 5 is a flow diagram illustrating one embodiment of a method 500 forperforming an action upon identifying a learned behavior of the user. Insome configurations, the method 500 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 800 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 505, a user may be identified via a sensor. At block 510,actions of the user may be monitored at a predetermined location. Atblock 515, a behavior of the user may be learned via the monitoring ofthe actions of the user at the predetermined location. At block 520,upon identifying the learned behavior, a command to perform an action inrelation to an object at the predetermined location may be generated.

FIG. 6 is a flow diagram illustrating one embodiment of a method 600 forgenerating a notification upon detecting a user falling. In someconfigurations, the method 600 may be implemented by the home automationmodule 145 illustrated in FIG. 1 or 2. In some configurations, themethod 600 may be implemented in conjunction with the application 140and/or the user interface 135 illustrated in FIG. 1.

At block 605, a user may be monitored at a predetermined location. Atblock 610, the user falling may be detected. At block 615, upondetecting the user falling, it may be determined which contact on acontact list is nearest to the predetermined location. At block 620, anotification may be sent to the contact determined to be nearest to thepredetermined location.

FIG. 7 is a flow diagram illustrating one embodiment of a method 700 forgenerating a notification upon determining a user is near apredetermined location. In some configurations, the method 700 may beimplemented by the home automation module 145 illustrated in FIG. 1 or2. In some configurations, the method 700 may be implemented inconjunction with the application 140 and/or the user interface 135illustrated in FIG. 1.

At block 705, one or more predetermined locations may be stored in adatabase. At block 710, a location of a user may be monitored inrelation to the one or more predetermined locations. At block 715, upondetermining the user is within a predetermined distance of the one ormore predetermined locations, a notification may be generated. At block720, the notification may be sent to a contact on a contact list.

FIG. 8 is a flow diagram illustrating one embodiment of a method 800 formonitoring a status of a service provider. In some configurations, themethod 800 may be implemented by the home automation module 145illustrated in FIG. 1 or 2. In some configurations, the method 800 maybe implemented in conjunction with the application 140 and/or the userinterface 135 illustrated in FIG. 1.

At block 805, a location of a service provider may be monitored inrelation to a predetermined location. At block 810, a request for acurrent status of the service provider may be received. The currentstatus may include a current location and current job-related status ofthe user. At block 815, upon determining the current status of theservice provider, a notification including the current status of theservice provider may be generated.

FIG. 9 is a flow diagram illustrating one embodiment of a method 900 formonitoring a location of a user relative to a calendar appointment. Insome configurations, the method 900 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 900 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 905, a calendar appointment may be scheduled. A user may be oneof a plurality of attendees of the calendar appointment. At block 910, alocation of the user may be monitored in relation to a time and locationassociated with the calendar appointment.

FIG. 10 is a flow diagram illustrating one embodiment of a method 1000for tracking incidents occurring within a geographic area. In someconfigurations, the method 1000 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 1000 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 1005, incidents that occur within a predetermined geographicarea may be tracked in relation to a subscription service. At block1010, upon receiving a request for a list of incidents in relation tothe predetermined geographic area, a notification including therequested list of incidents may be generated. At block 1015, thenotification may be sent to one or more subscribers within thepredetermined geographis area.

FIG. 11 is a flow diagram illustrating one embodiment of a method 1100for providing a temporary code that unlocks a door to emergency responsepersonnel upon identifying an emergency situation. In someconfigurations, the method 1100 may be implemented by the homeautomation module 145 illustrated in FIG. 1 or 2. In someconfigurations, the method 1100 may be implemented in conjunction withthe application 140 and/or the user interface 135 illustrated in FIG. 1.

At block 1105, an emergency situation may be identified in relation to auser at a location. At block 1110, upon identifying the emergencysituation, a notification message may be sent to emergency responsepersonnel. The notification message may include a temporary code toallow the emergency response personnel to unlock a door lock at thelocation within a predetermined time period.

FIG. 12 depicts a block diagram of a controller 1200 suitable forimplementing the present systems and methods. The controller 1200 may bean example of the set top box device 105, mobile computing device 150,and/or home automation controller 155 illustrated in FIG. 1. In oneconfiguration, controller 1200 includes a bus 1205 which interconnectsmajor subsystems of controller 1200, such as a central processor 1210, asystem memory 1215 (typically RAM, but which may also include ROM, flashRAM, or the like), an input/output controller 1220, an external audiodevice, such as a speaker system 1225 via an audio output interface1230, an external device, such as a display screen 1235 via displayadapter 1240, an input device 1245 (e.g., remote control deviceinterfaced with an input controller 1250), one or more USB devices 1265(interfaced with a USB controller 1270), and a storage interface 1280.Also included are at least one sensor 1255 connected to bus 1205 througha sensor controller 1260 and a network interface 1285 (coupled directlyto bus 1205).

Bus 1205 allows data communication between central processor 1210 andsystem memory 1215, which may include read-only memory (ROM) or flashmemory (neither shown), and random access memory (RAM) (not shown), aspreviously noted. The RAM is generally the main memory into which theoperating system and application programs are loaded. The ROM or flashmemory can contain, among other code, the Basic Input-Output system(BIOS) which controls basic hardware operation such as the interactionwith peripheral components or devices. For example, the home automationmodule 145-b to implement the present systems and methods may be storedwithin the system memory 1215. Applications (e.g., application 140)resident with controller 1200 are generally stored on and accessed via anon-transitory computer readable medium, such as a hard disk drive(e.g., fixed disk 1275) or other storage medium. Additionally,applications can be in the form of electronic signals modulated inaccordance with the application and data communication technology whenaccessed via interface 1285.

Storage interface 1280, as with the other storage interfaces ofcontroller 1200, can connect to a standard computer readable medium forstorage and/or retrieval of information, such as a fixed disk drive1275. Fixed disk drive 1275 may be a part of controller 1200 or may beseparate and accessed through other interface systems. Network interface1285 may provide a direct connection to a remote server via a directnetwork link to the Internet via a POP (point of presence). Networkinterface 1285 may provide such connection using wireless techniques,including digital cellular telephone connection, Cellular Digital PacketData (CDPD) connection, digital satellite data connection, or the like.In some embodiments, one or more sensors (e.g., motion sensor, smokesensor, glass break sensor, door sensor, window sensor, carbon monoxidesensor, and the like) connect to controller 1200 wirelessly via networkinterface 1285.

Many other devices or subsystems (not shown) may be connected in asimilar manner (e.g., entertainment system, computing device, remotecameras, wireless key fob, wall mounted user interface device, cellradio module, battery, alarm siren, door lock, lighting system,thermostat, home appliance monitor, utility equipment monitor, and soon). Conversely, all of the devices shown in FIG. 12 need not be presentto practice the present systems and methods. The devices and subsystemscan be interconnected in different ways from that shown in FIG. 12. Theaspect of some operations of a system such as that shown in FIG. 12 arereadily known in the art and are not discussed in detail in thisapplication. Code to implement the present disclosure can be stored in anon-transitory computer-readable medium such as one or more of systemmemory 1215 or fixed disk 1275. The operating system provided oncontroller 1200 may be iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®,UNIX®, LINUX®, or another known operating system.

Moreover, regarding the signals described herein, those skilled in theart will recognize that a signal can be directly transmitted from afirst block to a second block, or a signal can be modified (e.g.,amplified, attenuated, delayed, latched, buffered, inverted, filtered,or otherwise modified) between the blocks. Although the signals of theabove described embodiment are characterized as transmitted from oneblock to the next, other embodiments of the present systems and methodsmay include modified signals in place of such directly transmittedsignals as long as the informational and/or functional aspect of thesignal is transmitted between blocks. To some extent, a signal input ata second block can be conceptualized as a second signal derived from afirst signal output from a first block due to physical limitations ofthe circuitry involved (e.g., there will inevitably be some attenuationand delay). Therefore, as used herein, a second signal derived from afirst signal includes the first signal or any modifications to the firstsignal, whether due to circuit limitations or due to passage throughother circuit elements which do not change the informational and/orfinal functional aspect of the first signal.

While the foregoing disclosure sets forth various embodiments usingspecific block diagrams, flowcharts, and examples, each block diagramcomponent, flowchart step, operation, and/or component described and/orillustrated herein may be implemented, individually and/or collectively,using a wide range of hardware, software, or firmware (or anycombination thereof) configurations. In addition, any disclosure ofcomponents contained within other components should be consideredexemplary in nature since many other architectures can be implemented toachieve the same functionality.

The process parameters and sequence of steps described and/orillustrated herein are given by way of example only and can be varied asdesired. For example, while the steps illustrated and/or describedherein may be shown or discussed in a particular order, these steps donot necessarily need to be performed in the order illustrated ordiscussed. The various exemplary methods described and/or illustratedherein may also omit one or more of the steps described or illustratedherein or include additional steps in addition to those disclosed.

Furthermore, while various embodiments have been described and/orillustrated herein in the context of fully functional computing systems,one or more of these exemplary embodiments may be distributed as aprogram product in a variety of forms, regardless of the particular typeof computer-readable media used to actually carry out the distribution.The embodiments disclosed herein may also be implemented using softwaremodules that perform certain tasks. These software modules may includescript, batch, or other executable files that may be stored on acomputer-readable storage medium or in a computing system. In someembodiments, these software modules may configure a computing system toperform one or more of the exemplary embodiments disclosed herein.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the present systems and methods and their practicalapplications, to thereby enable others skilled in the art to bestutilize the present systems and methods and various embodiments withvarious modifications as may be suited to the particular usecontemplated.

Unless otherwise noted, the terms “a” or “an,” as used in thespecification and claims, are to be construed as meaning “at least oneof.” In addition, for ease of use, the words “including” and “having,”as used in the specification and claims, are interchangeable with andhave the same meaning as the word “comprising.” In addition, the term“based on” as used in the specification and the claims is to beconstrued as meaning “based at least upon.”

What is claimed is:
 1. A method for geo-location services, comprising:receiving, at a control panel of an alarm system, a first set ofincident information associated with a first geographic area; receiving,at the control panel, a second set of incident information associatedwith a second geographic area; receiving, at the control panel, arequest for a list of incident information associated with the firstgeographic area and the second geographic area after receiving the firstset of incident information and the second set of incident information,wherein the list of incident information is sortable based at least inpart on at least one parameter value of a subscribed service, whereinthe at least one parameter value comprises an incident type; generating,by the control panel, the list comprising at least the first set ofincident information and the second set of incident information based atleast in part on receiving the request for the list of incidentinformation associated with the first geographic area and the secondgeographic area; sorting, by the control panel, the second set ofincident information based at least in on the at least one parametervalue of the subscribed service, wherein generating the list is based atleast in part on sorting the second set of incident information; andtransmitting, by the control panel, a notification comprising statisticsassociated with the first set of incident information and the second setof incident information based at least in part on generating the list.2. The method of claim 1, wherein sorting the second set of incidentinformation occurs after receiving the second set of incidentinformation.
 3. The method of claim 1, further comprising: identifying astate of the control panel, wherein generating the notification is basedat least in part on identifying the state of the control panel.
 4. Themethod of claim 3, wherein the state of the control panel comprises atleast notification rules associated with content displayed at thecontrol panel.
 5. The method of claim 1, wherein the list comprising atleast the first set of incident information and the second set ofincident information is generated by a first module of the controlpanel.
 6. The method of claim 1, wherein the notification comprising thestatistics associated with the first set of incident information and thesecond set of incident information is transmitted by a second module ofthe control panel.
 7. The method of claim 1, further comprising:tracking, by the control panel, incidents that occur within the firstgeographic area and the second geographic area in relation to asubscription service based at least in part on receiving the first setof incident information and the second set of incident information. 8.The method of claim 1, further comprising: generating, by the controlpanel, the notification based at least in part on generating the list,wherein transmitting the notification is based at least in part ongenerating the notification.
 9. A computing device configured forgeo-location services, comprising: a processor; memory in electroniccommunication with the processor, wherein the memory stores computerexecutable instructions that when executed by the processor cause theprocessor to: receive, at a control panel of an alarm system, a firstset of incident information associated with a first geographic area;receive, at the control panel, a second set of incident informationassociated with a second geographic area; receive, at the control panel,a request for a list of incident information associated with the firstgeographic area and the second geographic area after receiving the firstset of incident information and the second set of incident information,wherein the list of incident information is sortable based at least inpart on at least one parameter value of a subscribed service, whereinthe at least one parameter value comprises an incident type; generate,by the control panel, the list comprising at least the first set ofincident information and the second set of incident information based atleast in part on receiving the request for the list of incidentinformation associated with the first geographic area and the secondgeographic area; sort, by the control panel, the second set of incidentinformation based at least in on the at least one parameter value of thesubscribed service, wherein generating the list is based at least inpart on sorting the second set of incident information; and transmit, bythe control panel, a notification comprising statistics associated withthe first set of incident information and the second set of incidentinformation based at least in part on generating the list.
 10. Thecomputing device of claim 9, wherein sorting the second set of incidentinformation occurs after receiving the second set of incidentinformation.
 11. The computing device of claim 9, wherein theinstructions executed by the processor cause the processor to performthe steps of: identify a state of the control panel, wherein generatingthe notification is based at least in part on identifying the state ofthe control panel.
 12. The computing device of claim 11, wherein thestate of the control panel comprises at least notification rulesassociated with content displayed at the control panel.
 13. Thecomputing device of claim 9, wherein the list comprising at least thefirst set of incident information and the second set of incidentinformation is generated by a first module of the control panel.
 14. Thecomputing device of claim 9, wherein the notification comprising thestatistics associated with the first set of incident information and thesecond set of incident information is transmitted by a second module ofthe control panel.
 15. The computing device of claim 9, wherein theinstructions executed by the processor cause the processor to performthe steps of: track, by the control panel, incidents that occur withinthe first geographic area and the second geographic area in relation toa subscription service based at least in part on receiving the first setof incident information and the second set of incident information. 16.The computing device of claim 9, wherein the instructions executed bythe processor cause the processor to perform the steps of: generate, bythe control panel, the notification based at least in part on generatingthe list, wherein transmitting the notification is based at least inpart on generating the notification.
 17. A non-transitorycomputer-readable storage medium storing computer executableinstructions that when executed by a processor of a control panel, causethe processor to perform the steps of: receive, at the control panel ofan alarm system, a first set of incident information associated with afirst geographic area; receive, at the control panel, a second set ofincident information associated with a second geographic area; receive,at the control panel, a request for a list of incident informationassociated with the first geographic area and the second geographic areaafter receiving the first set of incident information and the second setof incident information, wherein the list of incident information issortable based at least in part on at least one parameter value of asubscribed service, wherein the at least one parameter value comprisesan incident type; generate, by the control panel, the list comprising atleast the first set of incident information and the second set ofincident information based at least in part on receiving the request forthe list of incident information associated with the first geographicarea and the second geographic area; sort, by the control panel, thesecond set of incident information based at least in on the at least oneparameter value of the subscribed service, wherein generating the listis based at least in part on sorting the second set of incidentinformation; and transmit, by the control panel, a notificationcomprising statistics associated with the first set of incidentinformation and the second set of incident information based at least inpart on generating the list.
 18. The computer-readable storage medium ofclaim 17, wherein sorting the second set of incident information occursafter receiving the second set of incident information.